open_graph_reader 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/open_graph_reader.rb +20 -1
- data/lib/open_graph_reader/builder.rb +14 -10
- data/lib/open_graph_reader/configuration.rb +28 -3
- data/lib/open_graph_reader/definitions.rb +1 -1
- data/lib/open_graph_reader/object.rb +4 -4
- data/lib/open_graph_reader/object/dsl.rb +3 -1
- data/lib/open_graph_reader/object/dsl/types.rb +29 -9
- data/lib/open_graph_reader/parser.rb +7 -0
- data/lib/open_graph_reader/version.rb +1 -1
- data/spec/fixtures/real_world/image_path.html +699 -0
- data/spec/fixtures/real_world/missing_title.html +607 -0
- data/spec/fixtures/real_world/undefined_property_2.html +809 -0
- data/spec/integration/invalid_examples_spec.rb +13 -9
- data/spec/integration/real_world_spec.rb +60 -2
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d234bea4b2c6f26c897f1135cfd266874346e7c
|
4
|
+
data.tar.gz: 5ec41308b56fe3d639d83b880ab24354df45a398
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b489f32ebd5873b754860971b571f1375490fc29db6495adfc576a882aad9d8c21de6e92083f8bb0017271eefa8433aab728a8c0ca50fbc09384b1eccecc0b41
|
7
|
+
data.tar.gz: b6f990bcbdfa495f24b4862777c32cc712dbfb511039de0f20437e60ef8c149c145f4dc73420016305ec08306a8d13af9ed24fb291e01238e09a0eb90fad6878
|
data/lib/open_graph_reader.rb
CHANGED
@@ -38,10 +38,12 @@ module OpenGraphReader
|
|
38
38
|
# @raise [NoOpenGraphDataError] {include:NoOpenGraphDataError}
|
39
39
|
# @raise [InvalidObjectError] {include:InvalidObjectError}
|
40
40
|
def self.parse! html, origin=nil
|
41
|
+
self.current_origin = origin
|
41
42
|
parser = Parser.new html
|
42
43
|
raise NoOpenGraphDataError, "#{origin || html} does not contain any OpenGraph tags" unless parser.has_tags?
|
43
|
-
Builder.new(parser
|
44
|
+
Builder.new(parser).base.tap {|base|
|
44
45
|
base.origin = origin.to_s if origin
|
46
|
+
self.current_origin = nil
|
45
47
|
}
|
46
48
|
end
|
47
49
|
|
@@ -86,6 +88,19 @@ module OpenGraphReader
|
|
86
88
|
Configuration.instance
|
87
89
|
end
|
88
90
|
|
91
|
+
# Thread local to retrieve the current origin if available.
|
92
|
+
# See {Base#origin} if you want to know the origin of a parsed object.
|
93
|
+
#
|
94
|
+
# @api private
|
95
|
+
# @return [String,nil]
|
96
|
+
def self.current_origin
|
97
|
+
Thread.current[:_open_graph_reader_current_origin]
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.current_origin= value
|
101
|
+
Thread.current[:_open_graph_reader_current_origin] = value
|
102
|
+
end
|
103
|
+
|
89
104
|
# The target couldn't be fetched, didn't contain any HTML or
|
90
105
|
# any OpenGraph tags.
|
91
106
|
class NoOpenGraphDataError < StandardError
|
@@ -100,4 +115,8 @@ module OpenGraphReader
|
|
100
115
|
# @api private
|
101
116
|
class UnknownNamespaceError < StandardError
|
102
117
|
end
|
118
|
+
|
119
|
+
# The target does not define the requested property.
|
120
|
+
class UndefinedPropertyError < StandardError
|
121
|
+
end
|
103
122
|
end
|
@@ -11,14 +11,11 @@ module OpenGraphReader
|
|
11
11
|
|
12
12
|
# Create a new builder.
|
13
13
|
#
|
14
|
-
# @param [Parser
|
15
|
-
# @param [Array<String>] additional_namespaces Namespaces found in the
|
16
|
-
# prefix attribute of the head tag of the HTML document
|
14
|
+
# @param [Parser] parser
|
17
15
|
# @see Parser#graph
|
18
16
|
# @see Parser#additional_namespaces
|
19
|
-
def initialize
|
20
|
-
@
|
21
|
-
@additional_namespaces = additional_namespaces
|
17
|
+
def initialize parser
|
18
|
+
@parser = parser
|
22
19
|
end
|
23
20
|
|
24
21
|
# Build and return the base.
|
@@ -27,14 +24,15 @@ module OpenGraphReader
|
|
27
24
|
def base
|
28
25
|
base = Base.new
|
29
26
|
|
30
|
-
type = @graph.fetch('og:type', 'website').downcase
|
27
|
+
type = @parser.graph.fetch('og:type', 'website').downcase
|
31
28
|
|
32
29
|
validate_type type
|
33
30
|
|
34
|
-
@graph.each do |property|
|
31
|
+
@parser.graph.each do |property|
|
35
32
|
build_property base, property
|
36
33
|
end
|
37
34
|
|
35
|
+
synthesize_required_properties base
|
38
36
|
validate base
|
39
37
|
|
40
38
|
base
|
@@ -62,7 +60,7 @@ module OpenGraphReader
|
|
62
60
|
else # Direct attribute
|
63
61
|
object[name] = property.content
|
64
62
|
end
|
65
|
-
rescue UnknownNamespaceError => e
|
63
|
+
rescue UnknownNamespaceError, UndefinedPropertyError => e
|
66
64
|
raise InvalidObjectError, e.message if OpenGraphReader.config.strict
|
67
65
|
end
|
68
66
|
|
@@ -85,11 +83,17 @@ module OpenGraphReader
|
|
85
83
|
next_object
|
86
84
|
end
|
87
85
|
|
86
|
+
def synthesize_required_properties base
|
87
|
+
if OpenGraphReader.config.synthesize_title && base.og.title.nil?
|
88
|
+
base.og['title'] = @parser.title
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
88
92
|
def validate_type type
|
89
93
|
return unless OpenGraphReader.config.strict
|
90
94
|
|
91
95
|
unless KNOWN_TYPES.include?(type) ||
|
92
|
-
@additional_namespaces.include?(type) ||
|
96
|
+
@parser.additional_namespaces.include?(type) ||
|
93
97
|
Object::Registry.verticals.include?(type)
|
94
98
|
raise InvalidObjectError, "Undefined type #{type}"
|
95
99
|
end
|
@@ -2,6 +2,8 @@ require 'singleton'
|
|
2
2
|
|
3
3
|
module OpenGraphReader
|
4
4
|
# The behavior of this library can be tweaked with some parameters.
|
5
|
+
# Note that configuration is global, changing it at runtime is not
|
6
|
+
# thread safe.
|
5
7
|
#
|
6
8
|
# @example
|
7
9
|
# OpenGraphReader.configure do |config|
|
@@ -10,7 +12,7 @@ module OpenGraphReader
|
|
10
12
|
class Configuration
|
11
13
|
include Singleton
|
12
14
|
|
13
|
-
# Strict mode (default: <tt>false</tt>)
|
15
|
+
# Strict mode (default: <tt>false</tt>).
|
14
16
|
#
|
15
17
|
# In strict mode, if the fetched site defines an unknown type
|
16
18
|
# or property, {InvalidObjectError} is thrown instead of just ignoring
|
@@ -19,7 +21,7 @@ module OpenGraphReader
|
|
19
21
|
# @return [Bool]
|
20
22
|
attr_accessor :strict
|
21
23
|
|
22
|
-
# Validate required (default: <tt>true</tt>)
|
24
|
+
# Validate required (default: <tt>true</tt>).
|
23
25
|
#
|
24
26
|
# Validate that required properties exist. If this is enabled and
|
25
27
|
# they do not, {InvalidObjectError} is thrown.
|
@@ -27,7 +29,7 @@ module OpenGraphReader
|
|
27
29
|
# @return [Bool]
|
28
30
|
attr_accessor :validate_required
|
29
31
|
|
30
|
-
# Validate references (default: <tt>true</tt>)
|
32
|
+
# Validate references (default: <tt>true</tt>).
|
31
33
|
#
|
32
34
|
# If an object should be a reference to another object,
|
33
35
|
# validate that it contains an URL. Be careful in turning this off,
|
@@ -36,6 +38,27 @@ module OpenGraphReader
|
|
36
38
|
# @return [Bool]
|
37
39
|
attr_accessor :validate_references
|
38
40
|
|
41
|
+
# Fallback to the title tag if og:title is missing (default: <tt>false</tt>).
|
42
|
+
#
|
43
|
+
# The standard makes defining og:title required, but it's
|
44
|
+
# a common practice to rely on the parser falling back to
|
45
|
+
# synthesize it from the title tag. This option enables this feature.
|
46
|
+
#
|
47
|
+
# @return [Bool]
|
48
|
+
attr_accessor :synthesize_title
|
49
|
+
|
50
|
+
|
51
|
+
# Guess image URL when it looks like a path (default: <tt>false</tt>).
|
52
|
+
#
|
53
|
+
# The standard requires og:image, og:image:url and og:image:secure_url
|
54
|
+
# to be a full URL. However it's common practice to put a path relative
|
55
|
+
# to the domain URL. When enabled, the library tries to guess the full
|
56
|
+
# URL from such a path. Note the object can still turn invalid if it fails
|
57
|
+
# to do so.
|
58
|
+
#
|
59
|
+
# @return [Bool]
|
60
|
+
attr_accessor :synthesize_image_url
|
61
|
+
|
39
62
|
# @private
|
40
63
|
def initialize
|
41
64
|
reset_to_defaults!
|
@@ -46,6 +69,8 @@ module OpenGraphReader
|
|
46
69
|
@strict = false
|
47
70
|
@validate_required = true
|
48
71
|
@validate_references = true
|
72
|
+
@synthesize_title = false
|
73
|
+
@synthesize_image_url = false
|
49
74
|
end
|
50
75
|
end
|
51
76
|
end
|
@@ -67,10 +67,10 @@ module OpenGraphReader
|
|
67
67
|
# @api private
|
68
68
|
# @param [#to_s] name
|
69
69
|
# @todo right error?
|
70
|
-
# @raise [
|
70
|
+
# @raise [UndefinedPropertyError] If the requested property is undefined.
|
71
71
|
# @return [String, Object]
|
72
72
|
def [] name
|
73
|
-
raise
|
73
|
+
raise UndefinedPropertyError, "Undefined property #{name} on #{inspect}" unless has_property? name
|
74
74
|
public_send name.to_s #properties[name.to_s]
|
75
75
|
end
|
76
76
|
|
@@ -79,12 +79,12 @@ module OpenGraphReader
|
|
79
79
|
# @api private
|
80
80
|
# @param [#to_s] name
|
81
81
|
# @param [String, Object] value
|
82
|
-
# @raise [
|
82
|
+
# @raise [UndefinedPropertyError] If the requested property is undefined.
|
83
83
|
def []= name, value
|
84
84
|
if has_property?(name)
|
85
85
|
public_send "#{name}=", value
|
86
86
|
elsif OpenGraphReader.config.strict
|
87
|
-
raise
|
87
|
+
raise UndefinedPropertyError, "Undefined property #{name} on #{inspect}"
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -75,7 +75,9 @@ module OpenGraphReader
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
|
+
# Alias to trick YARD
|
80
|
+
singleton_class.send(:alias_method, :define_type_no_doc, :define_type)
|
79
81
|
|
80
82
|
# @overload namespace
|
81
83
|
# Get the namespace of this object.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'date'
|
2
|
+
require 'uri'
|
2
3
|
|
3
4
|
require 'open_graph_reader/object/dsl'
|
4
5
|
|
@@ -10,22 +11,41 @@ module OpenGraphReader
|
|
10
11
|
value.to_s
|
11
12
|
end
|
12
13
|
|
13
|
-
#
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
# @!method url(name, options={})
|
15
|
+
# @option options [Bool] :image (false) Mark attribute as image to be eligible
|
16
|
+
# for URL synthesization. See {Configuration#synthesize_image_url}.
|
17
|
+
# @!macro define_type_description
|
18
|
+
# @see http://ogp.me/#url
|
19
|
+
define_type_no_doc :url do |value, options|
|
20
|
+
value = value.to_s
|
21
|
+
|
22
|
+
unless value.start_with?('http://') || value.start_with?('https://')
|
23
|
+
if options[:image] && OpenGraphReader.config.synthesize_image_url
|
24
|
+
unless OpenGraphReader.current_origin
|
25
|
+
raise ArgumentError, "Enabled image url synthesization but didn't pass an origin"
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
value = "/#{value}" unless value.start_with? '/' # Normalize to absolute path
|
30
|
+
uri = URI.parse(OpenGraphReader.current_origin)
|
31
|
+
uri.path = value
|
32
|
+
value = uri.to_s
|
33
|
+
rescue
|
34
|
+
raise InvalidObjectError, "URL #{value.inspect} does not start with http:// or https:// and failed to synthesize a full URL"
|
19
35
|
end
|
36
|
+
elsif options.has_key?(:to) && OpenGraphReader.config.validate_references
|
37
|
+
raise InvalidObjectError, "URL #{value.inspect} does not start with http:// or https://"
|
20
38
|
end
|
21
|
-
|
39
|
+
end
|
40
|
+
|
41
|
+
value
|
22
42
|
end
|
23
43
|
|
24
44
|
# @!method enum(name, allowed, options={})
|
25
45
|
# @param [Array<String>] allowed the list of allowed values
|
26
46
|
# @!macro define_type_description
|
27
|
-
#
|
28
|
-
|
47
|
+
# @see http://ogp.me/#enum
|
48
|
+
define_type_no_doc :enum do |value, allowed|
|
29
49
|
unless allowed.include? value
|
30
50
|
raise InvalidObjectError, "Expected one of #{allowed.inspect} but was #{value.inspect}"
|
31
51
|
end
|
@@ -0,0 +1,699 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Fritzing Download</title>
|
6
|
+
<!-- viewport -->
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
8
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
9
|
+
<!-- meta tags -->
|
10
|
+
<meta property="og:title" content="Fritzing">
|
11
|
+
<meta property="og:type" content="website">
|
12
|
+
<meta property="og:image" content="/static/img/fritzing.png">
|
13
|
+
<meta property="og:url" content="http://fritzing.org/">
|
14
|
+
<meta name="description" content="">
|
15
|
+
<meta name="author" content="">
|
16
|
+
<!-- favicon -->
|
17
|
+
<link rel="shortcut icon" href="/static/img/favicon.ico">
|
18
|
+
<!-- style sheets -->
|
19
|
+
<link rel="stylesheet" type="text/css" media="screen" href="/static/css/reset.css">
|
20
|
+
<link rel="stylesheet" type="text/css" media="screen" href="/static/css/structure.css">
|
21
|
+
<link rel="stylesheet" type="text/css" media="screen" href="/static/css/design.css">
|
22
|
+
<link rel="stylesheet" type="text/css" media="screen" href="/static/lib/dropit/dropit.css">
|
23
|
+
<!-- fonts -->
|
24
|
+
<link rel="stylesheet" type="text/css" media="screen" href="/static/fonts/ocr-a-tribute/ocr-a-tribute.css">
|
25
|
+
<!--<link rel="stylesheet" type="text/css" media="screen" href="/static/fonts/droid-sans/droid-sans.css">-->
|
26
|
+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,600' rel='stylesheet' type='text/css'>
|
27
|
+
<!-- scripts -->
|
28
|
+
<script type="text/javascript" src="/static/lib/jquery.min.js"></script>
|
29
|
+
<script type="text/javascript" src="/static/lib/jquery.cookie.js"></script>
|
30
|
+
<script type="text/javascript" src="/static/js/index.js"></script>
|
31
|
+
<script type="text/javascript" src="/static/lib/dropit/dropit.js"></script>
|
32
|
+
<script type="text/javascript" src="/static/js/search.js"></script>
|
33
|
+
<!-- polyfills -->
|
34
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
35
|
+
<!--[if lt IE 9]><script src="/static/lib/html5shiv.min.js" type="text/javascript"></script><![endif]-->
|
36
|
+
|
37
|
+
<script type="text/javascript" src="/static/js/download.js"></script>
|
38
|
+
<link rel="stylesheet" href="/static/css/download.css" type="text/css" media="screen" />
|
39
|
+
<link rel="stylesheet" href="/static/lib/magnific-popup/magnific-popup.css" type="text/css" media="screen" />
|
40
|
+
<script type="text/javascript" src="/static/lib/magnific-popup/jquery.magnific-popup.min.js"></script>
|
41
|
+
|
42
|
+
<script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script></head>
|
43
|
+
<body>
|
44
|
+
|
45
|
+
<div id="header-container">
|
46
|
+
<header>
|
47
|
+
<div id="fritzing-logo">
|
48
|
+
<h1><a href="/">Fritzing</a></h1>
|
49
|
+
<p><a href="/">electronics made easy</a></p>
|
50
|
+
</div>
|
51
|
+
<nav id="nav-responsive" class="resp">
|
52
|
+
<ul class="dropit-resp">
|
53
|
+
<li>
|
54
|
+
<a href="#">Menu</a>
|
55
|
+
<ul>
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
<li><a href="/projects/" class="" title="Projects">Projects</a></li>
|
60
|
+
<li><a href="/parts/" class="" title="Parts">Parts</a></li>
|
61
|
+
<li><a href="/download/" class=" active " title="Download">Download</a></li>
|
62
|
+
<li><a href="/learning/" class="" title="Learning">Learning</a></li>
|
63
|
+
<li><a href="/forum/" class="" title="Forum">Forum</a></li>
|
64
|
+
<li><a href="/services/" class="" title="Services">Services</a></li>
|
65
|
+
<li><a href="/support-us/" class="" title="Contribute">Contribute</a></li>
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
<li><a href="/account/signup/"><strong>SIGN UP</strong></a></li>
|
72
|
+
<li><a href="/account/login/" class="login-link">LOGIN</a></li>
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
<!--<li class="main"><a href="/" title="Main Site" class="active">Main Site</a></li>
|
78
|
+
<li class="blog"><a href="http://blog.fritzing.org" title="Blog" target="_blank">Blog</a></li>-->
|
79
|
+
<li class="fab"><a href="http://fab.fritzing.org" title="Fab" target="_blank">Fab</a></li>
|
80
|
+
<li class="shop"><a href="http://shop.fritzing.org" title="Shop" target="_blank">Shop</a></li>
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
</ul>
|
85
|
+
</li>
|
86
|
+
</ul>
|
87
|
+
</nav>
|
88
|
+
<nav id="nav-main">
|
89
|
+
<ul>
|
90
|
+
|
91
|
+
<li><a href="/projects/" class="" title="Projects">Projects</a></li>
|
92
|
+
<li><a href="/parts/" class="" title="Parts">Parts</a></li>
|
93
|
+
<li><a href="/download/" class=" active " title="Download">Download</a></li>
|
94
|
+
<li><a href="/learning/" class="" title="Learning">Learning</a></li>
|
95
|
+
<li><a href="/forum/" class="" title="Forum">Forum</a></li>
|
96
|
+
<li><a href="/services/" class="" title="Services">Services</a></li>
|
97
|
+
<li><a href="/support-us/" class="" title="Contribute">Contribute</a></li>
|
98
|
+
|
99
|
+
|
100
|
+
</ul>
|
101
|
+
</nav>
|
102
|
+
<nav id="nav-global">
|
103
|
+
<ul>
|
104
|
+
|
105
|
+
<!--<li class="main"><a href="/" title="Main Site" class="active">Main Site</a></li>
|
106
|
+
<li class="blog"><a href="http://blog.fritzing.org" title="Blog" target="_blank">Blog</a></li>-->
|
107
|
+
<li class="fab"><a href="http://fab.fritzing.org" title="Fab" target="_blank">Fab</a></li>
|
108
|
+
<li class="shop"><a href="http://shop.fritzing.org" title="Shop" target="_blank">Shop</a></li>
|
109
|
+
|
110
|
+
</ul>
|
111
|
+
</nav>
|
112
|
+
<nav id="nav-sub">
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
</nav>
|
117
|
+
<nav id="nav-account">
|
118
|
+
<ul >
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
<li><a href="/account/signup/"><strong>SIGN UP</strong></a></li>
|
123
|
+
<li><a href="/account/login/" class="login-link">LOGIN</a></li>
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
</ul>
|
128
|
+
</nav>
|
129
|
+
</header>
|
130
|
+
</div>
|
131
|
+
|
132
|
+
|
133
|
+
<div id="container" class="clearfix">
|
134
|
+
<div id="main" role="main" class="clearfix">
|
135
|
+
<!-- content -->
|
136
|
+
<div id="content">
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
<!-- *27031979,15877,0# -->
|
141
|
+
|
142
|
+
<div class="cols cols-2 clearfix">
|
143
|
+
|
144
|
+
<div class="col">
|
145
|
+
<div class="clearfix">
|
146
|
+
|
147
|
+
|
148
|
+
<p class="lead">Fritzing is open source, free software. Please consider <a href="/shop/donations/">donating
|
149
|
+
to Friends-of-Fritzing e.V.</a> before downloading the app.<br/>
|
150
|
+
Fritzing is a non-profit organization devoted to making creative use of electronics accessible to everyone.</p>
|
151
|
+
|
152
|
+
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="donateForm">
|
153
|
+
<p class="messages"></p>
|
154
|
+
<!-- PayPal variables -->
|
155
|
+
<input type="hidden" name="cmd" value="_donations">
|
156
|
+
<input type="hidden" name="business" value="friends@fritzing.org">
|
157
|
+
<input type="hidden" name="item_name" value="Donation">
|
158
|
+
<input type="hidden" name="currency_code" value="EUR">
|
159
|
+
<input type="hidden" name="return" value="http://fritzing.org/download/?donation=1">
|
160
|
+
<input type="hidden" name="cancel_return" value="http://fritzing.org/download/?donation=0">
|
161
|
+
<input type="hidden" name="rm" value="2">
|
162
|
+
<!-- Form interaction -->
|
163
|
+
<input type="hidden" name="form" value="1">
|
164
|
+
<input type="hidden" name="radioChecked" value="0">
|
165
|
+
<label><input type="radio" name="amount" value="0"> No Donation</label>
|
166
|
+
<label><input type="radio" name="amount" value="10"> € 10</label>
|
167
|
+
<label><input type="radio" name="amount" value="25"> € 25</label>
|
168
|
+
<label class="text-input"><input type="radio" name="amount" value="other" id="wildcard"> € <input type="text" id="otra" placeholder="50"></label>
|
169
|
+
<input type="submit" name="submit" value="Donate & Download">
|
170
|
+
</form>
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
<p>Version <strong><a href="/download/0.9.1b/">0.9.1b</a></strong>
|
179
|
+
was released on <strong>Dec. 2, 2014</strong>.</p>
|
180
|
+
|
181
|
+
</div>
|
182
|
+
<p>Downloaded <em>15877</em> times.</p>
|
183
|
+
<p>See <a href="/download/history-changes/" title="History of Changes">what's new</a> and the <a href="/download/known-issues/" title="Known Issues">known issues</a>.</p>
|
184
|
+
<p>Read the <a href="#install">installation instructions</a> below.</p>
|
185
|
+
<p>
|
186
|
+
This version includes translations for:<br/>
|
187
|
+
<em lang="de">Deutsch</em> (German),
|
188
|
+
<em>English</em>,
|
189
|
+
<em lang="es">Español</em> (Spanish),
|
190
|
+
<em lang="fr">Français</em> (French),
|
191
|
+
<em lang="it">Italiano</em> (Italian),
|
192
|
+
<em lang="nl">Nederlands</em> (Dutch),
|
193
|
+
<em lang="pt-PT">Português (eu)</em> (Portuguese EU),
|
194
|
+
<em lang="pt-BR">Português (br)</em> (Portuguese BR),
|
195
|
+
<em lang="ja">日本語</em> (Japanese),
|
196
|
+
<em lang="zh-CN">中文 (简体)</em> (Chinese Simplified),
|
197
|
+
<em lang="zh-TW">正體中文 (繁體)</em> (Chinese Traditional),
|
198
|
+
<em lang="ru">Русский</em> (Russian),
|
199
|
+
<em lang="cs">Čeština</em> (Czech),
|
200
|
+
<em lang="ko">한국어</em> (Korean),
|
201
|
+
<em lang="el">Ελληνικά</em> (Greek),
|
202
|
+
<em lang="sk">slovenčina</em> (Slovak),
|
203
|
+
<em lang="tr">Türkçe</em> (Turkish),
|
204
|
+
<em lang="bg">Български</em> (Bulgarian),
|
205
|
+
<em lang="bn">বাংলা</em> (Bengali).
|
206
|
+
</p>
|
207
|
+
</div>
|
208
|
+
<div class="col slideshow">
|
209
|
+
<p><a href="/static/img/fritzing-preview-bb.png"><img src="/static/img/fritzing-preview-bb.png" /></a></p>
|
210
|
+
<p><a href="/static/img/fritzing-preview-schem.png"><img src="/static/img/fritzing-preview-schem.png" /></a></p>
|
211
|
+
<p><a href="/static/img/fritzing-preview-pcb.png"><img src="/static/img/fritzing-preview-pcb.png" /></a></p>
|
212
|
+
<p style="display: none"><a href="/static/img/fritzing-preview-welcome.png"><img src="/static/img/fritzing-preview-welcome.png" /></a></p>
|
213
|
+
<script type="text/javascript">
|
214
|
+
$(document).ready(function() {
|
215
|
+
$('.slideshow').magnificPopup({
|
216
|
+
delegate: 'a',
|
217
|
+
type: 'image',
|
218
|
+
closeBtnInside: false,
|
219
|
+
mainClass: 'mfp-with-zoom mfp-img-mobile',
|
220
|
+
gallery: {
|
221
|
+
enabled: true,
|
222
|
+
navigateByImgClick: true,
|
223
|
+
preload: [0,1]
|
224
|
+
},
|
225
|
+
zoom: {
|
226
|
+
enabled: true,
|
227
|
+
duration: 300,
|
228
|
+
opener: function(element) {
|
229
|
+
return element.find('img');
|
230
|
+
}
|
231
|
+
}
|
232
|
+
});
|
233
|
+
});
|
234
|
+
</script>
|
235
|
+
</div>
|
236
|
+
</div>
|
237
|
+
|
238
|
+
<div class="cols cols-1 clearfix">
|
239
|
+
|
240
|
+
<div class="col">
|
241
|
+
<a id="install"></a>
|
242
|
+
<h2>Installing Fritzing</h2>
|
243
|
+
|
244
|
+
<p>Please make sure your system satisfies one of these requirements:<br/>
|
245
|
+
<em>Windows</em> - XP and up<br />
|
246
|
+
<em>Mac</em> - OSX 10.7 and up, though 10.6 might work too<br />
|
247
|
+
<em>Linux</em> - a fairly recent linux distro with libc >= 2.6
|
248
|
+
</p>
|
249
|
+
|
250
|
+
<ol>
|
251
|
+
<li>Start downloading the Fritzing package that's right for you.</li>
|
252
|
+
<li>Unzip your Fritzing folder somewhere convenient on your hard drive.
|
253
|
+
<ul>
|
254
|
+
<li>This may also be a good time for you to create a shortcut to the Fritzing application.</li>
|
255
|
+
<li>A free unzipping program can be found <a href="http://www.rarlab.com/download.htm">here</a>, should you need it.</li>
|
256
|
+
<li>If you are updating your release of Fritzing, your custom files (parts and bins) are not stored with the application, so they will not be destroyed if you delete the older version of the Fritzing application folder.</li>
|
257
|
+
</ul>
|
258
|
+
</li>
|
259
|
+
<li>To start Fritzing:
|
260
|
+
<ul>
|
261
|
+
<li>on <em>Windows</em>: double-click fritzing.exe</li>
|
262
|
+
<li>on <em>Mac</em>: double-click the Fritzing application</li>
|
263
|
+
<li>on <em>Linux</em>: double-click Fritzing, or try ./Fritzing in your shell window</li>
|
264
|
+
</ul>
|
265
|
+
</li>
|
266
|
+
<li>If you experience problems, please try downloading again. This often helps. If it doesn't, have a look at our forums.</li>
|
267
|
+
</ol>
|
268
|
+
|
269
|
+
<h5>Mac notes</h5>
|
270
|
+
<p>
|
271
|
+
Recent versions of OS X do not allow "unverified" software to be launched directly. In order to run Fritzing, you will need to either:
|
272
|
+
<ol>
|
273
|
+
<li>right-click the Fritzing icon and select "Open"</li>
|
274
|
+
<li>in the warning dialog, click "Open"</li>
|
275
|
+
</ol>
|
276
|
+
or, to get rid of the warning permanently:
|
277
|
+
<ol>
|
278
|
+
<li>go to the System Preferences</li>
|
279
|
+
<li>open the Security & Privacy page</li>
|
280
|
+
<li>unlock it by clicking the lock in the lower left corner</li>
|
281
|
+
<li>set it to allow app downloads from anywhere</li>
|
282
|
+
</ol>
|
283
|
+
</p>
|
284
|
+
|
285
|
+
<h5>Linux notes</h5>
|
286
|
+
<p>
|
287
|
+
This binary release has been built and tested under Ubuntu 12.04 LTS.<br/>
|
288
|
+
Distros for other flavors of linux can be found at <a href="https://build.opensuse.org/package/show?package=fritzing&project=Education">openSUSE's repository</a>,
|
289
|
+
at <a href="http://software.opensuse.org/download.html?project=home:Heinervdm:branches:Education&package=fritzing">Heinervdm's openSUSE repo</a>; including a <a href="/media/uploads/fritzing.ymp">one-click download for openSUSE</a>.
|
290
|
+
Search our <a href="/forum/">forum</a> for even more. Fedora users can install Fritzing with 'yum install fritzing'.<br/>
|
291
|
+
We heartily thank openSUSE, Thomas Zimmermann, Debian.org, Bruno Canning, the Fedora Project, Ed Marshall, and other people and organizations for making these available. (But please be aware we have not tested these builds.)
|
292
|
+
</p>
|
293
|
+
|
294
|
+
<h2>Older releases</h2>
|
295
|
+
<p><div class="release_list">
|
296
|
+
<ul>
|
297
|
+
|
298
|
+
|
299
|
+
<li>
|
300
|
+
|
301
|
+
<strong><a href="/download/0.9.1b/">0.9.1b</a></strong> >
|
302
|
+
Dec. 2, 2014 > 15877 downloads:<br/>
|
303
|
+
|
304
|
+
<a href="/download/0.9.1b/windows-64bit/fritzing.0.9.1b.64.pc_1.zip" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Windows (64-bit)']);">
|
305
|
+
Windows (64-bit)</a>,
|
306
|
+
|
307
|
+
<a href="/download/0.9.1b/windows/fritzing.0.9.1b.32.pc_1.zip" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Windows']);">
|
308
|
+
Windows</a>,
|
309
|
+
|
310
|
+
<a href="/download/0.9.1b/source-tarball/fritzing-0.9.1b.source.zip" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Source tarball']);">
|
311
|
+
Source tarball</a>,
|
312
|
+
|
313
|
+
<a href="/download/0.9.1b/mac-os-x-105/Fritzing-0.9.1b_1.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Mac OS X 10.5']);">
|
314
|
+
Mac OS X 10.5</a>,
|
315
|
+
|
316
|
+
<a href="/download/0.9.1b/linux-64bit/fritzing-0.9.1b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Linux (64-bit)']);">
|
317
|
+
Linux (64-bit)</a>,
|
318
|
+
|
319
|
+
<a href="/download/0.9.1b/linux-32bit/fritzing-0.9.1b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.9.1b/Linux (32-bit)']);">
|
320
|
+
Linux (32-bit)</a>
|
321
|
+
|
322
|
+
<br />
|
323
|
+
|
324
|
+
</li>
|
325
|
+
|
326
|
+
<li>
|
327
|
+
|
328
|
+
<strong><a href="/download/0.9.0b/">0.9.0b</a></strong> >
|
329
|
+
July 14, 2014 > 282971 downloads:<br/>
|
330
|
+
|
331
|
+
<a href="/download/0.9.0b/windows-64bit/fritzing.0.9.0b.64.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Windows (64-bit)']);">
|
332
|
+
Windows (64-bit)</a>,
|
333
|
+
|
334
|
+
<a href="/download/0.9.0b/windows/fritzing.0.9.0b.32.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Windows']);">
|
335
|
+
Windows</a>,
|
336
|
+
|
337
|
+
<a href="/download/0.9.0b/source-tarball/fritzing-0.9.0b.source.tar_1.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Source tarball']);">
|
338
|
+
Source tarball</a>,
|
339
|
+
|
340
|
+
<a href="/download/0.9.0b/mac-os-x-105/Fritzing0.9.0b.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Mac OS X 10.5']);">
|
341
|
+
Mac OS X 10.5</a>,
|
342
|
+
|
343
|
+
<a href="/download/0.9.0b/linux-64bit/fritzing-0.9.0b.linux.AMD64.tar_1.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Linux (64-bit)']);">
|
344
|
+
Linux (64-bit)</a>,
|
345
|
+
|
346
|
+
<a href="/download/0.9.0b/linux-32bit/fritzing-0.9.0b.linux.i386.tar_1.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.9.0b/Linux (32-bit)']);">
|
347
|
+
Linux (32-bit)</a>
|
348
|
+
|
349
|
+
<br />
|
350
|
+
|
351
|
+
</li>
|
352
|
+
|
353
|
+
<li>
|
354
|
+
|
355
|
+
<strong><a href="/download/0.8.7b/">0.8.7b</a></strong> >
|
356
|
+
Jan. 24, 2014 > 316685 downloads:<br/>
|
357
|
+
|
358
|
+
<a href="/download/0.8.7b/windows/fritzing.0.8.7b.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.7b/Windows']);">
|
359
|
+
Windows</a>,
|
360
|
+
|
361
|
+
<a href="/download/0.8.7b/source-tarball/fritzing-0.8.7b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.7b/Source tarball']);">
|
362
|
+
Source tarball</a>,
|
363
|
+
|
364
|
+
<a href="/download/0.8.7b/mac-os-x-105/fritzing.0.8.7b.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.7b/Mac OS X 10.5']);">
|
365
|
+
Mac OS X 10.5</a>,
|
366
|
+
|
367
|
+
<a href="/download/0.8.7b/linux-64bit/fritzing-0.8.7b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.7b/Linux (64-bit)']);">
|
368
|
+
Linux (64-bit)</a>,
|
369
|
+
|
370
|
+
<a href="/download/0.8.7b/linux-32bit/fritzing-0.8.7b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.7b/Linux (32-bit)']);">
|
371
|
+
Linux (32-bit)</a>
|
372
|
+
|
373
|
+
<br />
|
374
|
+
|
375
|
+
</li>
|
376
|
+
|
377
|
+
<li>
|
378
|
+
|
379
|
+
<strong><a href="/download/0.8.6b/">0.8.6b</a></strong> >
|
380
|
+
Jan. 22, 2014 > 11456 downloads:<br/>
|
381
|
+
|
382
|
+
<a href="/download/0.8.6b/windows/fritzing.0.8.6b.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.6b/Windows']);">
|
383
|
+
Windows</a>,
|
384
|
+
|
385
|
+
<a href="/download/0.8.6b/source-tarball/fritzing-0.8.6b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.6b/Source tarball']);">
|
386
|
+
Source tarball</a>,
|
387
|
+
|
388
|
+
<a href="/download/0.8.6b/mac-os-x-105/fritzing.0.8.6b.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.6b/Mac OS X 10.5']);">
|
389
|
+
Mac OS X 10.5</a>,
|
390
|
+
|
391
|
+
<a href="/download/0.8.6b/linux-64bit/fritzing-0.8.6b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.6b/Linux (64-bit)']);">
|
392
|
+
Linux (64-bit)</a>,
|
393
|
+
|
394
|
+
<a href="/download/0.8.6b/linux-32bit/fritzing-0.8.6b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.6b/Linux (32-bit)']);">
|
395
|
+
Linux (32-bit)</a>
|
396
|
+
|
397
|
+
<br />
|
398
|
+
|
399
|
+
</li>
|
400
|
+
|
401
|
+
<li>
|
402
|
+
|
403
|
+
<strong><a href="/download/0.8.5b/">0.8.5b</a></strong> >
|
404
|
+
Dec. 17, 2013 > 104195 downloads:<br/>
|
405
|
+
|
406
|
+
<a href="/download/0.8.5b/windows/fritzing.2013.12.17.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.5b/Windows']);">
|
407
|
+
Windows</a>,
|
408
|
+
|
409
|
+
<a href="/download/0.8.5b/source-tarball/fritzing-0.8.5b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.5b/Source tarball']);">
|
410
|
+
Source tarball</a>,
|
411
|
+
|
412
|
+
<a href="/download/0.8.5b/mac-os-x-105/fritzing.2013.12.17.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.5b/Mac OS X 10.5']);">
|
413
|
+
Mac OS X 10.5</a>,
|
414
|
+
|
415
|
+
<a href="/download/0.8.5b/linux-64bit/fritzing-0.8.5b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.5b/Linux (64-bit)']);">
|
416
|
+
Linux (64-bit)</a>,
|
417
|
+
|
418
|
+
<a href="/download/0.8.5b/linux-32bit/fritzing-0.8.5b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.5b/Linux (32-bit)']);">
|
419
|
+
Linux (32-bit)</a>
|
420
|
+
|
421
|
+
<br />
|
422
|
+
|
423
|
+
</li>
|
424
|
+
|
425
|
+
<li>
|
426
|
+
|
427
|
+
<strong><a href="/download/0.8.4b/">0.8.4b</a></strong> >
|
428
|
+
Dec. 15, 2013 > 12238 downloads:<br/>
|
429
|
+
|
430
|
+
<a href="/download/0.8.4b/windows/fritzing.2013.12.15.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.4b/Windows']);">
|
431
|
+
Windows</a>,
|
432
|
+
|
433
|
+
<a href="/download/0.8.4b/source-tarball/fritzing-0.8.4b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.4b/Source tarball']);">
|
434
|
+
Source tarball</a>,
|
435
|
+
|
436
|
+
<a href="/download/0.8.4b/mac-os-x-105/fritzing.2013.12.15.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.4b/Mac OS X 10.5']);">
|
437
|
+
Mac OS X 10.5</a>,
|
438
|
+
|
439
|
+
<a href="/download/0.8.4b/linux-64bit/fritzing-0.8.4b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.4b/Linux (64-bit)']);">
|
440
|
+
Linux (64-bit)</a>,
|
441
|
+
|
442
|
+
<a href="/download/0.8.4b/linux-32bit/fritzing-0.8.4b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.4b/Linux (32-bit)']);">
|
443
|
+
Linux (32-bit)</a>
|
444
|
+
|
445
|
+
<br />
|
446
|
+
|
447
|
+
</li>
|
448
|
+
|
449
|
+
<li>
|
450
|
+
|
451
|
+
<strong><a href="/download/0.8.3b/">0.8.3b</a></strong> >
|
452
|
+
July 27, 2013 > 231293 downloads:<br/>
|
453
|
+
|
454
|
+
<a href="/download/0.8.3b/windows/fritzing.2013.07.27.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.3b/Windows']);">
|
455
|
+
Windows</a>,
|
456
|
+
|
457
|
+
<a href="/download/0.8.3b/source-tarball/fritzing-0.8.3b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.3b/Source tarball']);">
|
458
|
+
Source tarball</a>,
|
459
|
+
|
460
|
+
<a href="/download/0.8.3b/mac-os-x-105/fritzing.2013.07.27.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.3b/Mac OS X 10.5']);">
|
461
|
+
Mac OS X 10.5</a>,
|
462
|
+
|
463
|
+
<a href="/download/0.8.3b/linux-64bit/fritzing-0.8.3b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.3b/Linux (64-bit)']);">
|
464
|
+
Linux (64-bit)</a>,
|
465
|
+
|
466
|
+
<a href="/download/0.8.3b/linux-32bit/fritzing-0.8.3b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.3b/Linux (32-bit)']);">
|
467
|
+
Linux (32-bit)</a>
|
468
|
+
|
469
|
+
<br />
|
470
|
+
|
471
|
+
</li>
|
472
|
+
|
473
|
+
<li>
|
474
|
+
|
475
|
+
<strong><a href="/download/0.8.2b/">0.8.2b</a></strong> >
|
476
|
+
July 26, 2013 > 10665 downloads:<br/>
|
477
|
+
|
478
|
+
<a href="/download/0.8.2b/windows/fritzing.2013.07.26.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.2b/Windows']);">
|
479
|
+
Windows</a>,
|
480
|
+
|
481
|
+
<a href="/download/0.8.2b/source-tarball/fritzing-0.8.2b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.2b/Source tarball']);">
|
482
|
+
Source tarball</a>,
|
483
|
+
|
484
|
+
<a href="/download/0.8.2b/mac-os-x-105/fritzing.2013.07.26.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.2b/Mac OS X 10.5']);">
|
485
|
+
Mac OS X 10.5</a>,
|
486
|
+
|
487
|
+
<a href="/download/0.8.2b/linux-64bit/fritzing-0.8.2b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.2b/Linux (64-bit)']);">
|
488
|
+
Linux (64-bit)</a>,
|
489
|
+
|
490
|
+
<a href="/download/0.8.2b/linux-32bit/fritzing-0.8.2b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.2b/Linux (32-bit)']);">
|
491
|
+
Linux (32-bit)</a>
|
492
|
+
|
493
|
+
<br />
|
494
|
+
|
495
|
+
</li>
|
496
|
+
|
497
|
+
<li>
|
498
|
+
|
499
|
+
<strong><a href="/download/0.8.1b/">0.8.1b</a></strong> >
|
500
|
+
July 25, 2013 > 9344 downloads:<br/>
|
501
|
+
|
502
|
+
<a href="/download/0.8.1b/windows/fritzing.2013.07.25.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.1b/Windows']);">
|
503
|
+
Windows</a>,
|
504
|
+
|
505
|
+
<a href="/download/0.8.1b/source-tarball/fritzing-0.8.1b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.1b/Source tarball']);">
|
506
|
+
Source tarball</a>,
|
507
|
+
|
508
|
+
<a href="/download/0.8.1b/mac-os-x-105/fritzing.2013.07.25.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.1b/Mac OS X 10.5']);">
|
509
|
+
Mac OS X 10.5</a>,
|
510
|
+
|
511
|
+
<a href="/download/0.8.1b/linux-64bit/fritzing-0.8.1b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.1b/Linux (64-bit)']);">
|
512
|
+
Linux (64-bit)</a>,
|
513
|
+
|
514
|
+
<a href="/download/0.8.1b/linux-32bit/fritzing-0.8.1b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.1b/Linux (32-bit)']);">
|
515
|
+
Linux (32-bit)</a>
|
516
|
+
|
517
|
+
<br />
|
518
|
+
|
519
|
+
</li>
|
520
|
+
|
521
|
+
<li>
|
522
|
+
|
523
|
+
<strong><a href="/download/0.8.0b/">0.8.0b</a></strong> >
|
524
|
+
June 13, 2013 > 85480 downloads:<br/>
|
525
|
+
|
526
|
+
<a href="/download/0.8.0b/windows/fritzing.2013.06.13.pc.zip" onclick="_gaq.push(['_trackPageview', '/download/0.8.0b/Windows']);">
|
527
|
+
Windows</a>,
|
528
|
+
|
529
|
+
<a href="/download/0.8.0b/source-tarball/fritzing-0.8.0b.source.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.0b/Source tarball']);">
|
530
|
+
Source tarball</a>,
|
531
|
+
|
532
|
+
<a href="/download/0.8.0b/mac-os-x-105/fritzing.2013.06.13.cocoa.dmg" onclick="_gaq.push(['_trackPageview', '/download/0.8.0b/Mac OS X 10.5']);">
|
533
|
+
Mac OS X 10.5</a>,
|
534
|
+
|
535
|
+
<a href="/download/0.8.0b/linux-64bit/fritzing-0.8.0b.linux.AMD64.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.0b/Linux (64-bit)']);">
|
536
|
+
Linux (64-bit)</a>,
|
537
|
+
|
538
|
+
<a href="/download/0.8.0b/linux-32bit/fritzing-0.8.0b.linux.i386.tar.bz2" onclick="_gaq.push(['_trackPageview', '/download/0.8.0b/Linux (32-bit)']);">
|
539
|
+
Linux (32-bit)</a>
|
540
|
+
|
541
|
+
<br />
|
542
|
+
|
543
|
+
</li>
|
544
|
+
|
545
|
+
|
546
|
+
</ul>
|
547
|
+
</div>
|
548
|
+
</p>
|
549
|
+
</div>
|
550
|
+
</div>
|
551
|
+
|
552
|
+
</div>
|
553
|
+
<!-- sidebar -->
|
554
|
+
<div id="sidebar-container">
|
555
|
+
|
556
|
+
|
557
|
+
<form id="search" class="search" action="http://www.google.com/search" method="get">
|
558
|
+
<input type="text" name="q" id="" size="">
|
559
|
+
<input type="submit" value="GO">
|
560
|
+
</form>
|
561
|
+
|
562
|
+
|
563
|
+
<nav id="nav-aside">
|
564
|
+
<ul>
|
565
|
+
<li><a href="/faq/" class="" title="FAQ">FAQ</a></li>
|
566
|
+
<li><a href="/about/" class="" title="About">About</a></li>
|
567
|
+
<li><a href="/contact/" class="" title="About">Contact</a></li>
|
568
|
+
</ul>
|
569
|
+
|
570
|
+
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
571
|
+
<!-- Fritzing Website Small Square -->
|
572
|
+
<ins class="adsbygoogle"
|
573
|
+
style="display:inline-block;width:200px;height:200px"
|
574
|
+
data-ad-client="ca-pub-2306514257167796"
|
575
|
+
data-ad-slot="4043282069"></ins>
|
576
|
+
<script>
|
577
|
+
(adsbygoogle = window.adsbygoogle || []).push({});
|
578
|
+
</script>
|
579
|
+
</nav>
|
580
|
+
<!--
|
581
|
+
<ul>
|
582
|
+
% show_menu "Right" %
|
583
|
+
</ul>
|
584
|
+
-->
|
585
|
+
|
586
|
+
<aside id="sidebar">
|
587
|
+
<section class="teasers">
|
588
|
+
<!-- external wordpress blog -->
|
589
|
+
<h3>Blog</h3>
|
590
|
+
|
591
|
+
<ul>
|
592
|
+
<li>
|
593
|
+
<a href="http://blog.fritzing.org/2014/12/02/its-fritzmas-new-fritzing-code-view-release-and-a-little-present/" title="It's Fritzmas! New Fritzing "Code View" release, and a little present">It's Fritzmas! New Fritzing "Code View" release, and a little present</a>
|
594
|
+
<a href="http://blog.fritzing.org/2014/12/02/its-fritzmas-new-fritzing-code-view-release-and-a-little-present/"><small>Dec. 2, 2014</small></a>
|
595
|
+
</li> <li>
|
596
|
+
<a href="http://blog.fritzing.org/2014/11/24/an-intel-galileo-shield-data-monster/" title="An Intel Galileo Shield: Data Monster">An Intel Galileo Shield: Data Monster</a>
|
597
|
+
<a href="http://blog.fritzing.org/2014/11/24/an-intel-galileo-shield-data-monster/"><small>Nov. 24, 2014</small></a>
|
598
|
+
</li> <li>
|
599
|
+
<a href="http://blog.fritzing.org/2014/11/18/das-fritzing-creator-kit-im-schulunterricht/" title="Das Fritzing Creator Kit im Schulunterricht">Das Fritzing Creator Kit im Schulunterricht</a>
|
600
|
+
<a href="http://blog.fritzing.org/2014/11/18/das-fritzing-creator-kit-im-schulunterricht/"><small>Nov. 18, 2014</small></a>
|
601
|
+
</li> </ul>
|
602
|
+
<a href="http://blog.fritzing.org">More posts…</a>
|
603
|
+
|
604
|
+
</section>
|
605
|
+
|
606
|
+
|
607
|
+
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
<section class="teasers">
|
612
|
+
<h3>Forum</h3>
|
613
|
+
<ul>
|
614
|
+
|
615
|
+
<li>
|
616
|
+
<a href="/forum/thread/5980/?page=last#post13795">Breadboard not showing on top level</a>
|
617
|
+
<a href="/forum/creatorkit/"><small>Creator Kit</small></a>
|
618
|
+
</li>
|
619
|
+
|
620
|
+
<li>
|
621
|
+
<a href="/forum/thread/5979/?page=last#post13794">Creating Custom Parts Bin?</a>
|
622
|
+
<a href="/forum/how-do-i/"><small>How do I...</small></a>
|
623
|
+
</li>
|
624
|
+
|
625
|
+
<li>
|
626
|
+
<a href="/forum/thread/5935/?page=last#post13792">Exporting Parts as SVG</a>
|
627
|
+
<a href="/forum/parts/"><small>Parts</small></a>
|
628
|
+
</li>
|
629
|
+
|
630
|
+
</ul>
|
631
|
+
<a href="/forum/">More discussions…</a>
|
632
|
+
</section>
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
|
638
|
+
<section class="teasers">
|
639
|
+
<h3>Projects</h3>
|
640
|
+
<ul>
|
641
|
+
|
642
|
+
<li><a href="/projects/lunokhod/">Lunokhod</a>
|
643
|
+
<a href="/profiles/roboter/"><small>roboter</small></a>
|
644
|
+
</li>
|
645
|
+
|
646
|
+
<li><a href="/projects/arduino-yun-temperature-and-humidity-sensor/">Arduino Yun Temperature and Humidity sensor/Thingspeak</a>
|
647
|
+
<a href="/profiles/quickoo/"><small>quickoo</small></a>
|
648
|
+
</li>
|
649
|
+
|
650
|
+
<li><a href="/projects/joydelox-v10/">Joydelox v1.0</a>
|
651
|
+
<a href="/profiles/RebeccaRGB/"><small>RebeccaRGB</small></a>
|
652
|
+
</li>
|
653
|
+
|
654
|
+
</ul>
|
655
|
+
<a href="/projects/">More projects…</a>
|
656
|
+
</section>
|
657
|
+
|
658
|
+
|
659
|
+
<section class="highlight">
|
660
|
+
<h3>Get a Creator Kit!</h3>
|
661
|
+
<a href="http://creatorkit.fritzing.org" target="_blank"><img src="/static/img/creatorkit-teaser.png"/></a>
|
662
|
+
</section>
|
663
|
+
|
664
|
+
|
665
|
+
</aside>
|
666
|
+
|
667
|
+
</div>
|
668
|
+
</div>
|
669
|
+
</div>
|
670
|
+
|
671
|
+
|
672
|
+
<div id="footer-container" class="clearfix">
|
673
|
+
<footer>
|
674
|
+
<p>
|
675
|
+
Fritzing was initiated at the <a href="http://design.fh-potsdam.de" title="University of Applied Sciences Potsdam">FH Potsdam</a>, and is now developed by the <a href="http://friends.fritzing.org" title="Friends-of-Fritzing e.V.">Friends-of-Fritzing</a> foundation and <a href="http://www.ixds.de">IXDS</a>.
|
676
|
+
</p>
|
677
|
+
<p>
|
678
|
+
Follow us on:
|
679
|
+
<a title="Twitter: @FritzingOrg" href="http://twitter.com/#!/FritzingOrg" target="_blank">Twitter</a>,
|
680
|
+
<a title="Facebook: Fritzing" href="http://www.facebook.com/pages/Fritzing/178139742262089" target="_blank">Facebook</a>,
|
681
|
+
<a title="YouTube: fritzingpcb" href="http://www.youtube.com/user/fritzingpcb" target="_blank">YouTube</a>,
|
682
|
+
<a title="Flickr: fritzing_pcb" href="http://www.flickr.com/photos/fritzing_pcb/" target="_blank">Flickr</a>
|
683
|
+
</p>
|
684
|
+
</footer>
|
685
|
+
</div>
|
686
|
+
|
687
|
+
|
688
|
+
<script>
|
689
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
690
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
691
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
692
|
+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
693
|
+
|
694
|
+
ga('create', 'UA-46238307-1', 'fritzing.org');
|
695
|
+
ga('send', 'pageview');
|
696
|
+
|
697
|
+
</script>
|
698
|
+
<script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"js-agent.newrelic.com/nr-100.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-6.newrelic.com","3a12f7bbca","1887546","MlRaZ0dUC0pQVBFfDQsefkZbVhFQXllKVxIVQhZXWkILVV5WAUVME1hdREYPF1xdUgRFBzpdUUBB",0,251,new Date().getTime(),"","","","",""]);</script></body>
|
699
|
+
</html>
|