| { | ||
| "title": "Document.js", | ||
| "tagline": "document.js - create your document site with just one CLI command.", | ||
| "image": "img/app.png", | ||
| "theme": "navy", | ||
| "date_modified": true, | ||
| "repository": { | ||
| "url": "https://github.com/kaelzhang/node-document.git" | ||
| }, | ||
| "twitter": ["kaelzhang"], | ||
| "// google_analytics": "UA-xxxxxx-xxx", | ||
| "links": { | ||
| }, | ||
| "languages": { | ||
| "zh-CN": "δΈζ", | ||
| "en-US": "English" | ||
| }, | ||
| "site_root": "/docs", | ||
| "index": "README.md", | ||
| "// url_rewrite_type": "dir, title", | ||
| "url_rewrite_type": "" | ||
| } |
+18
| module.exports = function(grunt) { | ||
| grunt.loadNpmTasks('grunt-contrib-less'); | ||
| grunt.initConfig({ | ||
| less: { | ||
| development: { | ||
| files: { | ||
| "theme/public/css/daux-blue.css": "theme/public/less/daux-blue.less", | ||
| "theme/public/css/daux-green.css": "theme/public/less/daux-green.less", | ||
| "theme/public/css/daux-navy.css": "theme/public/less/daux-navy.less", | ||
| "theme/public/css/daux-red.css": "theme/public/less/daux-red.less" | ||
| } | ||
| } | ||
| } | ||
| }); | ||
| grunt.registerTask('default', ['less']); | ||
| } |
| <% if (config['google_analytics']) { %> | ||
| <script> | ||
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
| })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
| ga('create', '<%= config['google_analytics'] %>', location.host); | ||
| ga('send', 'pageview'); | ||
| </script> | ||
| <% } %> | ||
| <% if (config['piwik_analytics']) { %> | ||
| <script type="text/javascript"> | ||
| var _paq = _paq || []; | ||
| _paq.push(["trackPageView"]); | ||
| _paq.push(["enableLinkTracking"]); | ||
| (function() { | ||
| var u=(("https:" == document.location.protocol) ? "https" : "http") + "://<%= config['piwik_analytics'] %>/"; | ||
| _paq.push(["setTrackerUrl", u+"piwik.php"]); | ||
| _paq.push(["setSiteId", "1"]); | ||
| var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; | ||
| g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); | ||
| })(); | ||
| </script> | ||
| <% } %> |
| //Daux.io Blue | ||
| @sidebar-background: #f7f7f7; | ||
| @sidebar-hover: #c5c5cb; | ||
| @lines: #e7e7e9; | ||
| @dark: #3f4657; | ||
| @light: #82becd; | ||
| @text: #2d2d2d; | ||
| @syntax-string: #022e99; | ||
| @syntax-comment: #84989b; | ||
| @syntax-number: #2f9b92; | ||
| @syntax-label: #840d7a; | ||
| @import "import/daux-base.less"; |
| //Daux.io Green | ||
| @sidebar-background: #f5f5f6; | ||
| @sidebar-hover: #a0d55d; | ||
| @lines: #e7e7e9; | ||
| @dark: #000000; | ||
| @light: #8acc37; | ||
| @text: #2d2d2d; | ||
| @syntax-string: #e0ff00; | ||
| @syntax-comment: #c4e598; | ||
| @syntax-number: #097c4e; | ||
| @syntax-label: #022e99; | ||
| @import "import/daux-base.less"; |
| //Daux.io Navy | ||
| @sidebar-hover: #c5c5cb; | ||
| @lines: #e7e7e9; | ||
| @sidebar-background: #f5f5f6; | ||
| @dark: #13132a; | ||
| @light: #7795b4; | ||
| @text: #2d2d2d; | ||
| @syntax-string: #000000; | ||
| @syntax-comment: #505050; | ||
| @syntax-number: #09559b; | ||
| @syntax-label: #001775; | ||
| @import "import/daux-base.less"; |
| //Daux.io Red | ||
| @sidebar-hover: #eeeeee; | ||
| @lines: #eeeeee; | ||
| @sidebar-background: #f7f7f7; | ||
| @dark: #c64641; //#df4f49; | ||
| @light: #ecb5a1; | ||
| @text: #2d2d2d; | ||
| @syntax-string: #557aa2; | ||
| @syntax-comment: #ecdfd0; | ||
| @syntax-number: #9b2f7d; | ||
| @syntax-label: #a31621; | ||
| @import "import/daux-base.less"; |
Sorry, the diff of this file is too big to display
| //Mixins, cuz they're handy | ||
| .box-shadow(@shadowsize: 5px, @color:rgba(0,0,0,.25), @left: 0px, @top: 1px) { | ||
| -moz-box-shadow: @left @top @shadowsize @color; | ||
| -webkit-box-shadow: @left @top @shadowsize @color; | ||
| box-shadow: @left @top @shadowsize @color; | ||
| } | ||
| .border-radius(@radius: 5px) { | ||
| -moz-border-radius: @radius; | ||
| -webkit-border-radius: @radius; | ||
| border-radius: @radius; | ||
| } | ||
| .kill-background-image() { | ||
| background-image: none; | ||
| -ms-filter: none; | ||
| filter: none; | ||
| } | ||
| .kill-box-shadow() { | ||
| box-shadow: none; | ||
| -webkit-box-shadow: none; | ||
| -moz-box-shadow: none; | ||
| } | ||
| .sans-serif(@weight: normal, @size: 14px, @lineheight: 20px) { | ||
| font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
| font-size: @size; | ||
| font-weight: @weight; | ||
| line-height: @lineheight; | ||
| } | ||
| .opacity(@opacity: 0.5) { | ||
| -moz-opacity: @opacity; | ||
| -khtml-opacity: @opacity; | ||
| -webkit-opacity: @opacity; | ||
| opacity: @opacity; | ||
| @opperc: @opacity * 100; | ||
| -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opperc})"; | ||
| filter: ~"alpha(opacity=@{opperc})"; | ||
| } | ||
| @import "bootstrap.min.less"; | ||
| /* =========================================================================================== | ||
| Base CSS | ||
| ============================================================================================== */ | ||
| //Fonts | ||
| .roboto-slab { | ||
| &.light { | ||
| font-family: 'Roboto Slab', serif; | ||
| font-weight: 100; | ||
| } | ||
| &.book { | ||
| font-family: 'Roboto Slab', serif; | ||
| font-weight: 300; | ||
| } | ||
| &.regular { | ||
| font-family: 'Roboto Slab', serif; | ||
| font-weight: 400; | ||
| } | ||
| &.bold { | ||
| font-family: 'Roboto Slab', serif; | ||
| font-weight: 700; | ||
| } | ||
| } | ||
| //Typography | ||
| h1, h2, h3, h4, h5, h6 { | ||
| .roboto-slab.book; | ||
| } | ||
| a { | ||
| } | ||
| pre { | ||
| padding: 0; | ||
| } | ||
| /* =========================================================================================== | ||
| Homepage | ||
| ============================================================================================== */ | ||
| .homepage-hero { | ||
| padding-top: 50px !important; | ||
| background-color: @light; | ||
| .kill-box-shadow; | ||
| .border-radius(0px); | ||
| border: none; | ||
| color: @dark; | ||
| overflow: hidden; | ||
| @media (max-width: 767px) { | ||
| padding-top: 0px !important; | ||
| } | ||
| .text-center { | ||
| .roboto-slab.bold; | ||
| margin: 10px 0px; | ||
| } | ||
| h2 { | ||
| margin: 20px 0px; | ||
| } | ||
| .homepage-image { | ||
| //.box-shadow(10px, rgba(0,0,0,0.20), 0px, 0px); | ||
| } | ||
| } | ||
| .hero-buttons.container-fluid { | ||
| padding: 20px 0px; | ||
| background-color: @sidebar-hover; | ||
| .btn-hero.btn { | ||
| .roboto-slab.bold; | ||
| padding: 20px 30px; | ||
| .kill-background-image; | ||
| .kill-box-shadow; | ||
| .border-radius(0px); | ||
| text-shadow:none; | ||
| border: none; | ||
| .opacity(0.80); | ||
| margin: 0px 10px; | ||
| text-transform: uppercase; | ||
| border: 5px solid @dark; | ||
| @media (max-width: 767px) { | ||
| display: block; | ||
| margin-bottom: 10px; | ||
| } | ||
| &:hover { | ||
| .opacity(1.0); | ||
| } | ||
| &.btn-secondary { | ||
| background-color: @sidebar-hover; | ||
| color: @dark; | ||
| } | ||
| &.btn-primary { | ||
| background-color: @dark; | ||
| color: @sidebar-background; | ||
| } | ||
| } | ||
| } | ||
| .homepage-content.container-fluid { | ||
| // color: white; | ||
| // background-color: @text; | ||
| background-color: white; | ||
| padding: 40px 0px; | ||
| .lead { | ||
| .roboto-slab.regular; | ||
| } | ||
| ul, ol { | ||
| padding: 20px 0px; | ||
| margin: 0 0 10px 0px; | ||
| li { | ||
| list-style: none; | ||
| padding-bottom: 5px; | ||
| &:before { | ||
| content: ''; | ||
| width: 0px; | ||
| height: 0px; | ||
| border: 3px solid transparent; | ||
| border-left: 3px solid @light; | ||
| float: left; | ||
| display: block; | ||
| margin: 6px; | ||
| } | ||
| } | ||
| } | ||
| @media (max-width: 767px) { | ||
| padding: 40px 20px; | ||
| } | ||
| } | ||
| .homepage-footer.container-fluid { | ||
| background-color: @dark; | ||
| .kill-box-shadow; | ||
| .border-radius(0px); | ||
| color: light; | ||
| border: none; | ||
| @media (max-width: 767px) { | ||
| padding: 0 20px; | ||
| } | ||
| .footer-nav { | ||
| margin: 40px 0px; | ||
| li { | ||
| list-style: none; | ||
| a { | ||
| .roboto-slab.bold; | ||
| font-size: 16px; | ||
| line-height: 32px; | ||
| &:hover { | ||
| color: @light; | ||
| text-decoration: underline; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| .twitter { | ||
| margin-top: 20px; | ||
| } | ||
| .twitter:first-child { | ||
| margin-top: 40px; | ||
| } | ||
| } | ||
| .credits { | ||
| text-align: right; | ||
| padding: 20px 0; | ||
| color: @light; | ||
| a { | ||
| font-weight: bold; | ||
| } | ||
| @media (max-width: 767px) { | ||
| text-align: center; | ||
| } | ||
| } | ||
| /* =========================================================================================== | ||
| Docs Body & Page Structure | ||
| ============================================================================================== */ | ||
| html, body { | ||
| margin: 0; | ||
| padding: 0; | ||
| height: 100%; | ||
| background-color: @light; | ||
| color: @text; | ||
| } | ||
| //100% Height Columns | ||
| .container-fluid { | ||
| margin: 0 auto; | ||
| padding: 0; | ||
| -moz-box-sizing: border-box; | ||
| -webkit-box-sizing: border-box; | ||
| box-sizing: border-box; | ||
| &.fluid-height { | ||
| height: 100%; | ||
| @media (max-width: 767px) { | ||
| height: auto; | ||
| } | ||
| } | ||
| } | ||
| .columns { | ||
| height: 100%; | ||
| .left-column, | ||
| .right-column { | ||
| padding-top: 50px; | ||
| @media (max-width: 767px) { | ||
| width: 100% !important; | ||
| padding-top: 0px; | ||
| height: auto; | ||
| } | ||
| } | ||
| .left-column { | ||
| background-color: @sidebar-background; | ||
| border-right: 1px solid @lines; | ||
| } | ||
| .right-column { | ||
| &.span9 { | ||
| width: 76.4866339334%; | ||
| margin-left: 0px; | ||
| @media (min-width: 1200px) { | ||
| width: 76.8866339334%; | ||
| } | ||
| } | ||
| .content-page { | ||
| padding: 20px; | ||
| min-height: 100%; | ||
| background-color: white; | ||
| } | ||
| } | ||
| } | ||
| .content-area, .article-tree { | ||
| overflow:auto; | ||
| height: 100%; | ||
| padding: 0px; | ||
| } | ||
| //mobile friendly sub-nav | ||
| .responsive-collapse { | ||
| padding: 10px 15px; | ||
| display: none; | ||
| background-color: @lines; | ||
| border-bottom: 1px solid @lines; | ||
| @media (max-width: 767px) { | ||
| display: block; | ||
| } | ||
| } | ||
| .sub-nav-collapse { | ||
| @media (max-width: 768px) { | ||
| display: none; | ||
| } | ||
| @media (min-width: 768px) { | ||
| display: block; | ||
| } | ||
| } | ||
| //CSS For Fluid Tables | ||
| @media only screen and (max-width: 800px) { | ||
| /* Force table to not be like tables anymore */ | ||
| table, | ||
| thead, | ||
| tbody, | ||
| th, | ||
| td, | ||
| tr { | ||
| display: block; | ||
| border: none; | ||
| } | ||
| /* Hide table headers (but not display: none;, for accessibility) */ | ||
| thead tr { | ||
| position: absolute; | ||
| top: -9999px; | ||
| left: -9999px; | ||
| } | ||
| tr { | ||
| margin-bottom: 10px; | ||
| border-bottom: 2px solid #ccc; | ||
| td, th { | ||
| border: 1px solid #ccc; | ||
| border-bottom:none; | ||
| } | ||
| } | ||
| td { | ||
| /* Behave like a "row" */ | ||
| border: none; | ||
| border-bottom: 1px solid #eee; | ||
| position: relative; | ||
| padding-left: 50% !important; | ||
| white-space: normal; | ||
| text-align:left; | ||
| } | ||
| td:before { | ||
| /* Now like a table header */ | ||
| position: absolute; | ||
| /* Top/left values mimic padding */ | ||
| top: 6px; | ||
| left: 6px; | ||
| width: 45%; | ||
| padding-right: 10px; | ||
| white-space: nowrap; | ||
| text-align:left; | ||
| font-weight: bold; | ||
| } | ||
| /* | ||
| Label the data | ||
| */ | ||
| td:before { content: attr(data-title); } | ||
| } | ||
| /* =========================================================================================== | ||
| Componenets | ||
| ============================================================================================== */ | ||
| a { | ||
| color: @light; | ||
| } | ||
| .btn { | ||
| &.btn-sidebar { | ||
| padding: 7px 10px; | ||
| .kill-background-image; | ||
| .kill-box-shadow; | ||
| background-color: @sidebar-hover; | ||
| border: none; | ||
| .icon-bar { | ||
| display: block; | ||
| width: 18px; | ||
| height: 2px; | ||
| margin-top: 2px; | ||
| margin-bottom: 3px; | ||
| background-color: @dark; | ||
| .kill-box-shadow; | ||
| } | ||
| &:hover { | ||
| .kill-box-shadow; | ||
| background-color: @dark; | ||
| .icon-bar { | ||
| background-color: @light; | ||
| .kill-box-shadow; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| code { | ||
| color: @light; | ||
| } | ||
| //Navbar | ||
| .navbar { | ||
| .box-shadow(); | ||
| z-index: 1; | ||
| margin-bottom: 0px; | ||
| z-index: 200; | ||
| .navbar-inner { | ||
| .kill-background-image; | ||
| background-color: @dark; | ||
| border-bottom: none; | ||
| padding: 6px 20px; | ||
| .brand { | ||
| color: @light; | ||
| text-shadow:none; | ||
| .roboto-slab.bold; | ||
| } | ||
| .navbar-text { | ||
| color: @light; | ||
| a { | ||
| color: @light; | ||
| } | ||
| } | ||
| @media (max-width: 767px) { | ||
| padding: 6px 10px; | ||
| .navbar-text { | ||
| line-height: 16px; | ||
| margin: 12px 6px; | ||
| font-size: 12px; | ||
| } | ||
| } | ||
| } | ||
| @media (min-width: 768px) and (max-width: 979px) { | ||
| &.navbar-fixed-top { | ||
| position: fixed; | ||
| } | ||
| } | ||
| @media (max-width: 767px) { | ||
| &.navbar-fixed-top { | ||
| margin-left: 0px; | ||
| margin-right: 0px; | ||
| } | ||
| } | ||
| } | ||
| //Sidebar Nav List | ||
| .nav.nav-list { | ||
| padding-left: 0px; | ||
| padding-right: 0px; | ||
| li { | ||
| a { | ||
| margin: 0px; | ||
| padding: 6px 15px; | ||
| .roboto-slab.regular; | ||
| color: @dark; | ||
| font-size: 15px; | ||
| text-shadow:none; | ||
| border-top: 1px solid @lines; | ||
| &:hover { | ||
| color: @dark; | ||
| text-shadow:none; | ||
| background-color: @sidebar-hover; | ||
| } | ||
| } | ||
| &.active { | ||
| > a { | ||
| background-color: @sidebar-hover; | ||
| } | ||
| } | ||
| &.open { | ||
| > ul { | ||
| display: block; | ||
| } | ||
| } | ||
| &:last-child { | ||
| &.open { | ||
| //border-bottom: none; | ||
| } | ||
| } | ||
| ul { | ||
| display: none; | ||
| margin-left: 15px; | ||
| li { | ||
| a { | ||
| .sans-serif(normal, 14px); | ||
| margin: 0px; | ||
| margin-left: -15px; | ||
| padding: 3px 30px; | ||
| border: none; | ||
| color: @text; | ||
| .opacity(0.70); | ||
| &:hover { | ||
| .opacity(1.0); | ||
| background-color: transparent; | ||
| } | ||
| } | ||
| &.active { | ||
| a { | ||
| color: @dark; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| .page-header { | ||
| margin: 10px 0px; | ||
| padding: 0px; | ||
| h1 { | ||
| margin-top: 0px; | ||
| } | ||
| sub-heading { | ||
| padding: 0px, 0px, 20px; | ||
| } | ||
| } | ||
| pre { | ||
| border: none; | ||
| background-color: @light; | ||
| .border-radius(0px); | ||
| padding: 10px; | ||
| margin-left: -20px; | ||
| padding-left: 30px; | ||
| margin-right: -20px; | ||
| padding-right: 30px; | ||
| code { | ||
| background: transparent; | ||
| border: none; | ||
| } | ||
| } | ||
| //Content pages float view | ||
| .float-view { | ||
| @media (min-width: 1150px) { | ||
| .content-page { | ||
| height: 100%; | ||
| overflow:auto; | ||
| padding: 0px !important; | ||
| background-color: transparent !important; | ||
| position: relative; | ||
| article { | ||
| width: 100%; | ||
| min-height: 100%; | ||
| overflow: auto; | ||
| position: relative; | ||
| z-index: 1; | ||
| &:before { | ||
| content: ""; | ||
| width: 50%; | ||
| min-height: 100%; | ||
| overflow: auto; | ||
| background-color: white; | ||
| display: block; | ||
| margin: 0px; | ||
| position: absolute; | ||
| z-index: -1; | ||
| } | ||
| } | ||
| table { | ||
| float: left; | ||
| clear: left; | ||
| width: 47%; | ||
| margin-left: 1.5%; | ||
| margin-right: 1.5%; | ||
| background-color: white; | ||
| white-space: normal; | ||
| pre, code { | ||
| white-space: normal; | ||
| } | ||
| } | ||
| .page-header { | ||
| padding: 0px; | ||
| } | ||
| .page-header, | ||
| p, ul, ol, dl, h2, h3,h4, h5, h6 { | ||
| float: left; | ||
| clear: left; | ||
| width: 47%; | ||
| margin-left: 1.5%; | ||
| margin-right: 1.5%; | ||
| background-color: white; | ||
| &:before { | ||
| content: ""; | ||
| width: 100%; | ||
| height: 10px; | ||
| display: block; | ||
| clear: both; | ||
| //border-top: 1px solid @dark; | ||
| } | ||
| p, ul, ol, dl, h2, h3,h4, h5, h6, pre { | ||
| float: none; | ||
| display: block; | ||
| } | ||
| } | ||
| ul,ol { | ||
| li { | ||
| margin-left: 30px; | ||
| } | ||
| } | ||
| pre { | ||
| float: left; | ||
| clear: right; | ||
| width: 47%; | ||
| border: none; | ||
| border-left: 10px solid white; | ||
| margin: 0px 0px 10px 0px; | ||
| padding: 0px 0px 0px 10px; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| //Tables | ||
| table { | ||
| width: 100%; | ||
| border-bottom: 1px solid @lines; | ||
| margin-bottom: 10px; | ||
| tr { | ||
| th, td { | ||
| padding: 8px; | ||
| line-height: 20px; | ||
| text-align: left; | ||
| vertical-align: top; | ||
| border-top: 1px solid @lines; | ||
| border-left: 1px solid @lines; | ||
| border-color: @lines !important; | ||
| &:last-child { | ||
| border-right: 1px solid @lines; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| //Footer | ||
| .footer { | ||
| position: fixed; | ||
| bottom:0; | ||
| left: 0; | ||
| padding: 15px; | ||
| } | ||
| //github ribbon | ||
| #github-ribbon { | ||
| position: absolute; | ||
| top: 50px; | ||
| right: 0; | ||
| z-index: 200; | ||
| } | ||
| .well { | ||
| &.well-sidebar { | ||
| .kill-box-shadow; | ||
| background-color: transparent; | ||
| .border-radius(0px); | ||
| border: none; | ||
| a { | ||
| font-size: 13px; | ||
| .roboto-slab.regular; | ||
| color: @light; | ||
| line-height: 28px; | ||
| } | ||
| .twitter { | ||
| hr { | ||
| border-bottom: none; | ||
| margin-left: -20px; | ||
| margin-right: -20px; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| /* =========================================================================================== | ||
| Code Highlighting | ||
| ============================================================================================== */ | ||
| pre code { | ||
| display: block; padding: 0.5em; | ||
| } | ||
| pre code, | ||
| pre .subst, | ||
| pre .tag .title, | ||
| pre .lisp .title, | ||
| pre .clojure .built_in, | ||
| pre .nginx .title { | ||
| color: @dark; | ||
| } | ||
| pre .string, | ||
| pre .title, | ||
| pre .constant, | ||
| pre .parent, | ||
| pre .tag .value, | ||
| pre .rules .value, | ||
| pre .rules .value .number, | ||
| pre .preprocessor, | ||
| pre .ruby .symbol, | ||
| pre .ruby .symbol .string, | ||
| pre .aggregate, | ||
| pre .template_tag, | ||
| pre .django .variable, | ||
| pre .smalltalk .class, | ||
| pre .addition, | ||
| pre .flow, | ||
| pre .stream, | ||
| pre .bash .variable, | ||
| pre .apache .tag, | ||
| pre .apache .cbracket, | ||
| pre .tex .command, | ||
| pre .tex .special, | ||
| pre .erlang_repl .function_or_atom, | ||
| pre .markdown .header { | ||
| color: @syntax-string; | ||
| } | ||
| pre .comment, | ||
| pre .annotation, | ||
| pre .template_comment, | ||
| pre .diff .header, | ||
| pre .chunk, | ||
| pre .markdown .blockquote { | ||
| color: @syntax-comment; | ||
| } | ||
| pre .number, | ||
| pre .date, | ||
| pre .regexp, | ||
| pre .literal, | ||
| pre .smalltalk .symbol, | ||
| pre .smalltalk .char, | ||
| pre .go .constant, | ||
| pre .change, | ||
| pre .markdown .bullet, | ||
| pre .markdown .link_url { | ||
| color: @syntax-number; | ||
| } | ||
| pre .label, | ||
| pre .javadoc, | ||
| pre .ruby .string, | ||
| pre .decorator, | ||
| pre .filter .argument, | ||
| pre .localvars, | ||
| pre .array, | ||
| pre .attr_selector, | ||
| pre .important, | ||
| pre .pseudo, | ||
| pre .pi, | ||
| pre .doctype, | ||
| pre .deletion, | ||
| pre .envvar, | ||
| pre .shebang, | ||
| pre .apache .sqbracket, | ||
| pre .nginx .built_in, | ||
| pre .tex .formula, | ||
| pre .erlang_repl .reserved, | ||
| pre .prompt, | ||
| pre .markdown .link_label, | ||
| pre .vhdl .attribute, | ||
| pre .clojure .attribute, | ||
| pre .coffeescript .property { | ||
| color: @syntax-label; | ||
| } | ||
| pre .keyword, | ||
| pre .id, | ||
| pre .phpdoc, | ||
| pre .title, | ||
| pre .built_in, | ||
| pre .aggregate, | ||
| pre .css .tag, | ||
| pre .javadoctag, | ||
| pre .phpdoc, | ||
| pre .yardoctag, | ||
| pre .smalltalk .class, | ||
| pre .winutils, | ||
| pre .bash .variable, | ||
| pre .apache .tag, | ||
| pre .go .typename, | ||
| pre .tex .command, | ||
| pre .markdown .strong, | ||
| pre .request, | ||
| pre .status { | ||
| font-weight: bold; | ||
| } | ||
| pre .markdown .emphasis { | ||
| font-style: italic; | ||
| } | ||
| pre .nginx .built_in { | ||
| font-weight: normal; | ||
| } | ||
| pre .coffeescript .javascript, | ||
| pre .javascript .xml, | ||
| pre .tex .formula, | ||
| pre .xml .javascript, | ||
| pre .xml .vbscript, | ||
| pre .xml .css, | ||
| pre .xml .cdata { | ||
| opacity: 0.5; | ||
| } |
+1
-1
@@ -48,4 +48,4 @@ 'use strict'; | ||
| type: Boolean, | ||
| default: true | ||
| default: false | ||
| } | ||
| }; |
+6
-3
@@ -240,8 +240,7 @@ 'use strict'; | ||
| node.html = html; | ||
| // There might be no title inside the html | ||
| title = parser.get_title(html); | ||
| } else { | ||
| title = node.name; | ||
| } | ||
| parser._generate_url(node, title); | ||
| parser._generate_url(node, title || node.name); | ||
@@ -322,2 +321,6 @@ var pages = node.pages; | ||
| } else { | ||
| if ( !name ) { | ||
| console.log(node); | ||
| } | ||
| var cooked = parser.cook_name(name); | ||
@@ -324,0 +327,0 @@ node.display_name = cooked.display_name; |
+13
-7
@@ -18,4 +18,9 @@ 'use strict'; | ||
| return function (req, res, next) { | ||
| var req_data = server.apply_language(user, req.url); | ||
| var url = node_url.parse(req.url, true); | ||
| var req_data = server.apply_language(user, url); | ||
| if ( req_data.is_default_lang && req_data.language ) { | ||
| return res.redirect(user.site_root + '/' + req_data.language + url.pathname); | ||
| } | ||
| dao.current(req_data, options, function (err, data) { | ||
@@ -56,4 +61,2 @@ var current = data.current; | ||
| server.apply_language = function (cfg, url) { | ||
| url = node_url.parse(url, true); | ||
| var slices = url.pathname.split('/').filter(Boolean); | ||
@@ -64,2 +67,3 @@ var language = slices[0]; | ||
| var default_language = cfg.default_language; | ||
| var is_default_lang; | ||
@@ -73,2 +77,3 @@ // req -> /docs/zh-CN/xxx/xxx | ||
| } else { | ||
| is_default_lang = true; | ||
| language = default_language; | ||
@@ -78,7 +83,8 @@ } | ||
| return { | ||
| languages : languages, | ||
| language : language, | ||
| path_slices : slices, | ||
| query : url.query | ||
| languages : languages, | ||
| language : language, | ||
| is_default_lang : is_default_lang, | ||
| path_slices : slices, | ||
| query : url.query | ||
| } | ||
| }; |
+2
-2
@@ -34,4 +34,4 @@ 'use strict'; | ||
| if ( is_folder ) { | ||
| var href = node.url && node.html && (config.site_root + node.url); | ||
| html += '<a href="' + (href || '#') + '" class="J_nav J_has-content folder">' + node.display_name + '</a>'; | ||
| var content_link = node.url && node.html && (config.site_root + node.url); | ||
| html += '<a href="' + (content_link || '#') + '" class="J_nav ' + (content_link ? 'J_has-content ' : '') + 'folder">' + node.display_name + '</a>'; | ||
@@ -38,0 +38,0 @@ html += tools.nav(node, current_doc, config); |
+5
-2
| { | ||
| "name": "document", | ||
| "version": "0.3.1", | ||
| "version": "0.4.2", | ||
| "description": "Create your document site with just one command.", | ||
@@ -20,2 +20,3 @@ "// main": "index.js", | ||
| ], | ||
| "homepage": "http://kael.me/document", | ||
| "author": "kael", | ||
@@ -38,4 +39,6 @@ "license": "MIT", | ||
| "mocha": "~1.13.0", | ||
| "chai": "~1.8.1" | ||
| "chai": "~1.8.1", | ||
| "grunt": "~0.4.1", | ||
| "grunt-contrib-less": "~0.7.0" | ||
| } | ||
| } |
+13
-9
| [](http://badge.fury.io/js/document) | ||
| [](https://travis-ci.org/kaelzhang/node-document) | ||
| <!-- [](https://travis-ci.org/kaelzhang/node-document) --> | ||
| [](https://gemnasium.com/kaelzhang/node-document) | ||
@@ -9,3 +9,3 @@ | ||
| # Life gets easier | ||
| ## Life gets easier | ||
@@ -22,3 +22,3 @@ To create your document site, just: | ||
| # Feature | ||
| ## Feature | ||
@@ -37,7 +37,7 @@ - Could not be easier ! Just ONE command! | ||
| # Usage | ||
| ## Usage | ||
| Visit [the document site](http://kael.me/document) for details. | ||
| ## Specify the `doc` Directory | ||
| ### Specify the `doc` Directory | ||
@@ -54,3 +54,3 @@ By default, if your repo is based on commonjs, `document` will use the [`directories.doc`](http://wiki.commonjs.org/wiki/Packages/1.0#Package_Directory_Layout) field of the package.json as the document root. | ||
| ## Basic Informations | ||
| ### Basic Informations | ||
@@ -65,11 +65,15 @@ It's best to use `document` command at the root of your repo, in order to read the package.json. | ||
| # Credits | ||
| ## Credits | ||
| `document@0.x.x` uses the theme of [daux.io](daux.io), thanks a million. | ||
| ## Contribution | ||
| # What's comming! | ||
| - issues: [https://github.com/kaelzhang/node-document/issues](https://github.com/kaelzhang/node-document/issues) | ||
| ## Vision `1.x.x` | ||
| ## What's comming! | ||
| ### Vision `1.x.x` | ||
| > Actually, all those features below has been designed and implemented at the very beginning of `document`, but they were not fully tested yet. | ||
@@ -76,0 +80,0 @@ > |
@@ -1,28 +0,23 @@ | ||
| <% if (config['google_analytics']) { %> | ||
| <script> | ||
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
| })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
| ga('create', '<%= config['google_analytics'] %>', location.host); | ||
| ga('send', 'pageview'); | ||
| </script> | ||
| <% } %> | ||
| <% if (config['piwik_analytics']) { %> | ||
| <script type="text/javascript"> | ||
| var _paq = _paq || []; | ||
| _paq.push(["trackPageView"]); | ||
| _paq.push(["enableLinkTracking"]); | ||
| (function() { | ||
| var u=(("https:" == document.location.protocol) ? "https" : "http") + "://<%= config['piwik_analytics'] %>/"; | ||
| _paq.push(["setTrackerUrl", u+"piwik.php"]); | ||
| _paq.push(["setSiteId", "1"]); | ||
| var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; | ||
| g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); | ||
| })(); | ||
| </script> | ||
| <% } %> | ||
| <div class="homepage-footer well container-fluid"> | ||
| <div class="container"> | ||
| <% | ||
| // <div class="row"> | ||
| // <div class="span5 offset1"> | ||
| // <ul class="footer-nav"> | ||
| // <li><a href="xxxxxxxx" target="_blank">xxxxxxxx</a></li> | ||
| // </ul> | ||
| // </div> | ||
| // <div class="span5"> | ||
| // <div class="pull-right"> | ||
| // <div class="twitter"> | ||
| // <iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:162px; height:20px;" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=xxxxxxxx&show_count=false"></iframe> | ||
| // </div> | ||
| // </div> | ||
| // </div> | ||
| // </div> | ||
| %> | ||
| <div class="credits"> | ||
| Generated by <a href="http://kael.me/document">document</a>, Theme by <a href="http://daux.io">daux.io</a> | ||
| </div> | ||
| </div> | ||
| </div> |
@@ -10,2 +10,14 @@ <% include header %> | ||
| <a class="brand pull-left" href="<%= config.site_root %>"><%= config.title %></a> | ||
| <% if (config.languages) { | ||
| var l; | ||
| var text; | ||
| for (l in config.languages) { | ||
| text = config.languages[l]; | ||
| } | ||
| %><p class="navbar-text pull-right"> | ||
| <a href="<%= config.site_root %>/<%= l %>"><%= text %></a> | ||
| </p><% | ||
| } | ||
| %> | ||
| </div> | ||
@@ -19,4 +31,5 @@ </div> | ||
| </div> | ||
| <% include footer %> | ||
| </body> | ||
| <% include footer %> | ||
| <% include scripts %> | ||
| </html> |
| { | ||
| "title": "document", | ||
| "tagline": "Create your document site with just one command.", | ||
| "image": "img/app.png", | ||
| "theme": "navy", | ||
| "date_modified": true, | ||
| "repository": { | ||
| "url": "https://github.com/kaelzhang/node-document.git" | ||
| }, | ||
| "twitter": ["justin_walsh", "todaymade"], | ||
| "google_analytics": "UA-12653604-10", | ||
| "links": { | ||
| "Download": "https://github.com/justinwalsh/daux.io/archive/master.zip", | ||
| "GitHub Repo": "https://github.com/justinwalsh/daux.io", | ||
| "Help/Support/Bugs": "https://github.com/justinwalsh/daux.io/issues", | ||
| "Made by Todaymade": "http://todaymade.com" | ||
| }, | ||
| "languages": { | ||
| "en-US": "English", | ||
| "zh-CN": "δΈζ" | ||
| }, | ||
| "site_root": "/docs/", | ||
| "index": "README.md", | ||
| "// url_rewrite_type": "dir, title", | ||
| "url_rewrite_type": "" | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
AI-detected possible typosquat
Supply chain riskAI has identified this package as a potential typosquat of a more popular package. This suggests that the package may be intentionally mimicking another package's name, description, or other metadata.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 2 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 2 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1387288
11.62%55
17.02%29642
0.3%88
4.76%4
100%49
2.08%